Computing devices often contain input/out ports, such as USB ports. When an external device is plugged into the input/out port, the host controller of the hosting device is used to detect the speed of that external device. By determining the speed of the external device, the host controller can arrange the hosting device to function at the speed needed by the external device. Often a host controller supports multiple external devices from input/output ports. Each external device plugged into the input/output port consumes power from the hosting device. As a result, the power consumption of a hosting device with external devices attached is not optimized as the external device requests and receives a certain amount of power.